package com.example.serviceheadlines.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tangyuan.common.result.Result;
import com.tangyuan.dto.HeadlineArticlePublishDto;
import com.tangyuan.dto.UpdateHeadlinesDto;
import com.tangyuan.model.Headlines;
import com.tangyuan.model.headlines.HeadlinesCategoryQueryDto;
import com.tangyuan.model.headlines.HeadlinesContentQueryDto;
import org.springframework.web.multipart.MultipartFile;

import java.util.Date;
import java.util.List;

public interface HeadlinesService extends IService<Headlines> {

    Headlines getHeadlinesById(Long headlinesId, Long userId);

    void browseHeadlines(Long id);

    Page<Headlines> getHeadlinesList(Long userId, HeadlinesCategoryQueryDto dto);

    Result headlineVideoPublish(String token, Long categoryId, String area, String title, MultipartFile file, MultipartFile file1,String videoUrl,String videoFirstImageUrl);

    Result headlinePublish(String token, HeadlineArticlePublishDto headlineArticlePublishDto);

    Result deleteHeadlinesById(String token, Long headlinesId);

    List<Headlines> getMyHeadlinesByUserId(Long userId, Integer pageNum, Integer pageSize);

    Long getArticleThumpNumByUserId(Long userId);

    List<Headlines> getMyTrumpHeadlines(Long userId, Integer pageNum, Integer pageSize);

    List<Headlines> getMyCollectArticle(Long userId, Integer pageNum, Integer pageSize);

    void updateHeadlinesUserMessage(UpdateHeadlinesDto updateHeadlinesDto);

    Page<Headlines> searchHeadlines(Long userId, HeadlinesContentQueryDto dto);

    List<Headlines> getMediaEqualToNullData();

    Headlines getPushHeadlines(Date date);
}
